package com.ruifu.worksheet.service;

import com.fhzncloud.cloud.common.security.service.CloudUser;
import com.ruifu.common.vo.PageResultVO;
import com.ruifu.worksheet.vo.WsCustomizeTypeVO;

/**
 * @author yuanyundi
 * @date 2020/04/14
 */
public interface WsCustomizeTypeService {

    /**
     * 变更单类型列表查询
     *
     * @param pageNum 当前页
     * @param pageSize 显示条数
     * @param wsCustomizeTypeVO 查询条件
     * @param cloudUser 登陆人员信息
     * @return PageResultVO 查询集合
     */
    PageResultVO findPage(int pageNum, int pageSize, WsCustomizeTypeVO wsCustomizeTypeVO, CloudUser cloudUser);

    /**
     * 变更单类型单一查询
     * @param ctTypeId 数据主键
     * @param cloudUser 登录人员信息
     * @return ResultVO
     */
    WsCustomizeTypeVO findById(Long ctTypeId,CloudUser cloudUser);

    /**
     * 变更单类型新增
     *
     * @param wsCustomizeTypeVO 变更类型DTO
     * @param cloudUser 登录人员信息
     */
    void insertEntity(WsCustomizeTypeVO wsCustomizeTypeVO, CloudUser cloudUser);

    /**
     * 变更单类型编辑
     *
     * @param wsCustomizeTypeVO 变更类型VO
     * @param cloudUser 登录人员信息
     */
    void updateEntity(WsCustomizeTypeVO wsCustomizeTypeVO, CloudUser cloudUser);

    /**
     * 变更单类型启动/停用/删除
     *
     * @param ctTypeId 主键ID
     * @param operFlag 操作标识
     * @param cloudUser 登录人员信息
     */
    void operEntity(Long ctTypeId,int operFlag, CloudUser cloudUser);

    /**
     * 变更单类型 新增/修改 提交校验
     *
     * @param ctClass 类别
     * @param ctName 类型名称
     * @param cloudUser 登录人员信息
     * @return Integer 查询条数
     */
    int checkSubmit(int ctClass,String ctName,CloudUser cloudUser);

    /**
     * 变更单类型 新增/修改 提交校验
     *
     * @param ctCode 类型编号
     * @param cloudUser 登录人员信息
     * @return Integer 查询条数
     */
    int checkSubmit(String ctCode, CloudUser cloudUser);

    /**
     * 账套号数据同步
     *
     * @param sourceSetId
     * @param targetSetId
     */
    void copyWsCommonSheetList(Long sourceSetId,Long targetSetId);
}
